#ifndef CDA_DOUBLY_LINKED_LIST_H
#define CDA_DOUBLY_LINKED_LIST_H

#include "cda.h"

typedef struct enq_item_s {
    struct enq_item_s *flink;
    struct enq_item_s *blink;
    char              *name;
} ENQ_ITEM_t, *ENQ_ITEM_p_t;

typedef ENQ_ITEM_t  ENQ_ANCHOR_t, *ENQ_ANCHOR_p_t;

ENQ_ANCHOR_p_t ENQ_create_list(const char *name);
ENQ_ITEM_p_t ENQ_create_item(const char *name, size_t size);
CDA_BOOL_t ENQ_is_item_enqed(ENQ_ITEM_p_t item);
CDA_BOOL_t ENQ_is_list_empty(ENQ_ANCHOR_p_t list);
ENQ_ITEM_p_t ENQ_add_head(ENQ_ANCHOR_p_t list, ENQ_ITEM_p_t item);

#endif